// wcb:将数字转换为相应的汉字

// numberToChinese.js
// numberToChinese.js
// numberToChinese.js
export const numberToChinese = (str) => {
  const units = ["", "十", "百", "千", "万", "十", "百", "千", "亿"];
  const digits = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];

  if (str === "0") {
    return digits[0];
  }

  let result = "";
  let zeroCount = 0;

  for (let i = 0; i < str.length; i++) {
    const digit = str[str.length - 1 - i]; // 从最后一位开始处理
    if (digit === "0") {
      zeroCount++;
      // 只在非最前面和前面有数字的情况下添加“零”
      if (i > 0 && result[0] !== digits[0]) {
        result = digits[0] + result;
      }
    } else {
      zeroCount = 0;
      result = digits[digit] + units[i] + result;
    }
  }

  // 去掉结果中的多个连续“零”
  result = result.replace(/零+/g, "零");

  // 去掉末尾的“零”
  if (result.endsWith("零")) {
    result = result.slice(0, -1);
  }

  // 处理特殊情况，比如"一十" 应该变成 "十"
  if (result.startsWith("一十")) {
    result = result.replace("一十", "十");
  }

  // 处理 "一万" 应该是 "万"
  if (result.includes("一万")) {
    result = result.replace("一万", "万");
  }

  return result;
};